package comTwo.dynamic;

import org.junit.Test;
import org.kie.api.io.ResourceType;
import org.kie.api.runtime.KieSession;
import org.kie.internal.utils.KieHelper;

/**
 * 实战中，规则内容比较少的时候，可以通过数据库字段读取，将字符串保存在数据库中。
 * 规则数量太多时，需要通过文件 的 方式进行读取
 * 字符串操作时，需要注意:
 *   1. 字符串中的引号需要转义
 *   2. 基本语法的正确性
 *   3. 字符串拼接时的正确性
 */
public class StringRule {

    @Test
    public void test() {
        String myRule = "package rules rule \"hello World 2\" when eval(true) then System.out.println(\"Test, Drools!\"); end";
        System.out.println("myRule = " + myRule);
        KieHelper helper = new KieHelper();
        helper.addContent(myRule, ResourceType.DRL);
        KieSession kieSession = helper.build().newKieSession();
        kieSession.fireAllRules();
        kieSession.dispose();
    }
}